package com.vdong.interactive.course.service;


import com.github.pagehelper.PageInfo;
import com.vdong.interactive.course.entity.dto.*;
import com.vdong.interactive.course.entity.dto.base.BasePeddleGoodsDTO;

public interface PeddleGoodsService {

    /**
     * 分销商品后台列表
     * @param checkState 审核状态【0：待审核 1：通过 2：未通过 3:违规】
     * @param openState 上架状态 开放状态【1：上架 0：下架】
     * @param classifyType 类别类型 分类类型【0：课程】
     * @param keyword 关键字
     * @param sysUserId 操作人
     * @param isShow 是否首页展示 0：不展示 1：展示
     * @param page 页码
     * @param pageSize 页面显示条数
     * @return
     */
    PageInfo<GoodsPeddleListDTO> getPeddleGoodsList(Integer checkState, Integer openState,
                                                    Integer classifyType, String keyword, Long sysUserId,
                                                    Integer isShow,Integer sort, Integer page, Integer pageSize);

    /**
     * 分销商品后台列表
     * @param checkState 审核状态【0：待审核 1：通过 2：未通过 3:违规】
     * @param openState 上架状态 开放状态【1：上架 0：下架】
     * @param classifyType 类别类型 分类类型【0：课程】
     * @param keyword 关键字
     * @param sysUserId 操作人
     * @param isShow 是否首页展示 0：不展示 1：展示
     * @param page 页码
     * @param pageSize 页面显示条数
     * @return
     */
    PageInfo<GoodsPeddleListDTO> getStorePeddleGoodsList(Integer checkState, Integer openState,
                                                    Integer classifyType, String keyword, Long sysUserId,
                                                    Integer isShow,Integer sort, Integer page, Integer pageSize);

    /**
     * 首页推荐商品目录内容
     * @param keyword 搜索商品关键字
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<GoodsPeddleListDTO> getIndexGoodsChoice(String keyword,Integer sort,Integer page,Integer pageSize);

    /**
     * 轮播图商品目录内容
     * @param keyword 搜索商品关键字
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<GoodsPeddleListDTO> rotationGoodsChoice(String keyword,Integer sort,Integer page,Integer pageSize);

    /**
     * 获取分销商品基础信息
     * @param peddleGoodsId 分销商品Id
     * @return
     */
    BasePeddleGoodsDTO getBasePeddleGoodsDetail(Long peddleGoodsId);

    /**
     * 获取分销商品信息(商户)
     * @param peddleGoodsId 分销商品Id
     * @return
     */
    PeddleGoodsDetailDTO getPeddleGoodsDetail(Long peddleGoodsId);

    /**
     * 获取课程目录
     * @param peddleGoodsId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<CourseSubCatalogDTO> pageCourseSub(Long peddleGoodsId,Integer page,Integer pageSize);

    /**
     * 用户端获取商品列表
     * @param keyword 关键字
     * @param categoryId 一级分类
     * @param typeId 二级分类
     * @param sort 排序 1：价格又高到低，2：佣金由高到低，3：销量由高到低
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<AppPeddleGoodsDTO> getAppPeddleGoodsPage(String keyword, Long categoryId, Long typeId, Integer classifyType, Integer sort, Integer isShow, Integer page, Integer pageSize);

    /**
     * 用户端获取商品详情
     * @param peddleGoodsId
     * @return
     */
    AppPeddleGoodsDetailDTO getAppPeddleGoodsDetail(Long peddleGoodsId);

    /**
     * 获取课时内容(图文)
     * @param subId
     * @return
     */
    String getSubContext(Long subId);

    /**
     * 获取课时详情
     * @param subId
     * @return
     */
    CourseSubCatalogDTO getCourseSubDetail(Long subId);
}
